﻿@model Tarasca.Models.PerfilModel
<script type="text/javascript">
    $(document).ready(function () {
        $(".cargandoRecuperar").hide();
        EventBinder($("#btnCambiarContraseña"), "click", actualizarContraseña);
        EventBinder($("#btnCambiarEmail"), "click", actualizarEmail);
        EventBinder($("#email"), "keyup", validarEmail);
    });

    function contraseñaEsValida() {
        var vieja = $("#contraseñaActual").val();
        var contraseña = $("#nuevaContraseña").val();

        if (vieja.length == 0) {
            $("#contraseñaActual").parent().addClass("has-error");
            $("#contraseñaActual").parent().removeClass("has-success");
            $("#estadoContraseña").attr("class", "text-danger");
            $("#estadoContraseña").text("Ingresá la contraseña actual");
            return false;
        }
        else {
            $("#contraseñaActual").parent().removeClass("has-error");
            $("#contraseñaActual").parent().addClass("has-success");
        }

        if (contraseña.length < 6 || contraseña.length > 20) {
            $("#nuevaContraseña").parent().addClass("has-error");
            $("#nuevaContraseña").parent().removeClass("has-success");

            $("#estadoContraseña").attr("class", "text-danger");
            $("#estadoContraseña").text("La contraseña debe tener entre 6 y 20 caracteres");
            return false;
        }
        else {
            $("#nuevaContraseña").parent().removeClass("has-error");
            $("#nuevaContraseña").parent().addClass("has-success");
            $("#estadoContraseña").text("");
            return true;
        }
    }

    var validarEmailTimer;

    function validarEmail() {
        if (validarEmailTimer)
            clearTimeout(validarEmailTimer);
        var email = $("#email").val();
        var emailOriginal = $("#emailOriginal").val();

        if (emailValido(email)) {
            validarEmailTimer = setTimeout(function () {
                $.ajax({
                    url: '@Url.Content("~/Auth/EmailDisponible")',
                    data: { email: email },
                    success: function (data) {
                        if (data.Disponible) {
                            $("#email").parent().removeClass("has-error");
                            $("#email").parent().addClass("has-success");
                            $("#estadoEmail").attr("class", "text-success");
                            $("#estadoEmail").text("E-mail " + data.Email + " disponible");
                        }
                        else if (!data.Disponible && email != emailOriginal) {
                            $("#email").parent().addClass("has-error");
                            $("#email").parent().removeClass("has-success");
                            $("#estadoEmail").attr("class", "text-danger");
                            $("#estadoEmail").text("E-mail " + data.Email + " en uso");
                        }
                    }
                });
            }, 1000);
        }
        else {
            $("#errorEmail").text("");
        }
    }

    function actualizarContraseña() {
        if (!contraseñaEsValida())
            return;

        $("#contraseñaActual").prop("disabled", true);
        $("#nuevaContraseña").prop("disabled", true);
        $("#btnCambiarContraseña").prop("disabled", true);
        $("#cargandoContraseña").show();

        $.ajax({
            url: '@Url.Content("~/Perfil/ModificarContrasena")',
            data: { contrasenaActual: $("#contraseñaActual").val(), nuevaContrasena: $("#nuevaContraseña").val() },
            success: function (data) {
                if (data.Mensaje.length == 0) {
                    $("#contraseñaActual").prop("disabled", false);
                    $("#nuevaContraseña").prop("disabled", false);
                    $("#btnCambiarContraseña").prop("disabled", false);
                    $("#cargandoContraseña").hide();
                    $("#estadoContraseña").text("Contraseña modificada con éxito");
                    $("#estadoContraseña").removeClass("text-danger");
                    $("#estadoContraseña").addClass("text-success");
                }
                else {
                    $("#contraseñaActual").prop("disabled", false);
                    $("#nuevaContraseña").prop("disabled", false);
                    $("#btnCambiarContraseña").prop("disabled", false);
                    $("#cargandoContraseña").hide();
                    $("#estadoContraseña").text(data.Mensaje);
                    $("#estadoContraseña").addClass("text-danger");
                    $("#estadoContraseña").removeClass("text-success");
                }
            },
            error: function () {
                $("#contraseñaActual").prop("disabled", false);
                $("#nuevaContraseña").prop("disabled", false);
                $("#btnCambiarContraseña").prop("disabled", false);
                $("#cargandoContraseña").hide();
                $("#estadoContraseña").text("Error, no se ha modificado la contraseña");
                $("#estadoContraseña").addClass("text-danger");
                $("#estadoContraseña").removeClass("text-success");
            }
        });
    }

    function actualizarEmail() {
        var valorEmail = $("#email").val();

        if (!emailValido(valorEmail)) {
            $("#estadoEmail").text("E-mail inválido");
            $("#estadoEmail").attr("class", "text-danger");
            $("#email").parent().addClass("has-error");
            $("#email").parent().removeClass("has-success");
            return;
        }

        $("#email").prop("disabled", true);
        $("#btnCambiarEmail").prop("disabled", true);
        $("#cargandoEmail").show();

        $.ajax({
            url: '@Url.Content("~/Perfil/ModificarEmail/")',
            data: { email: $("#email").val() },
            success: function (data) {
                if (data.Mensaje.length == 0) {
                    $("#email").prop("disabled", false);
                    $("#btnCambiarEmail").prop("disabled", false);
                    $("#cargandoEmail").hide();
                    $("#estadoEmail").text("E-Mail modificado con éxito");
                    $("#estadoEmail").attr("class", "text-success");
                    $("#email").parent().removeClass("has-error");
                    $("#email").parent().addClass("has-success");
                }
                else {
                    $("#email").prop("disabled", false);
                    $("#btnCambiarEmail").prop("disabled", false);
                    $("#cargandoEmail").hide();
                    $("#estadoEmail").text(data.Mensaje);
                    $("#estadoEmail").attr("class", "text-danger");
                    $("#email").parent().addClass("text-danger");
                    $("#email").parent().removeClass("text-success");
                }
            },
            error: function () {
                $("#email").prop("disabled", false);
                $("#btnCambiarEmail").prop("disabled", false);
                $("#cargandoEmail").hide();
                $("#estadoEmail").text("Error no se ha modificado el E-Mail");
                $("#estadoEmail").attr("class", "text-danger");
                $("#email").parent().addClass("text-danger");
                $("#email").parent().removeClass("text-success");
            }
        });
    }
</script>
<h2>Acceso</h2>
<div class="form-horizontal contenedorEditarMovimiento">
    <div class="form-group">
        <label class="col-md-2 control-label">Contraseña actual:</label>
        <div class="col-md-4">
            <input type="password" id="contraseñaActual" class="form-control" value="" />
        </div>
    </div>
    <div class="form-group">
        <label class="col-md-2 control-label">Nueva Contraseña:</label>
        <div class="col-md-4">
            <input type="password" id="nuevaContraseña" class="form-control" value="" />
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-6 contenedorComandoPerfil">
            <img id="cargandoContraseña" class="cargandoRecuperar" alt="Cargando..." src="@Url.Content("~/Contenido/Imagenes/loading2.gif")" />
            <button id="btnCambiarContraseña" class="btn btn-sm btn-info">Cambiar Contraseña</button>
        </div>
        
    </div>
    <div class="form-group">
        <div class="col-md-6 contenedorComandoPerfil">
            <label id="estadoContraseña"></label>
        </div>
    </div>
</div>
<h2>Contacto</h2>
<div class="form-horizontal contenedorEditarMovimiento">
    <div class="form-group">
        <label class="col-md-2 control-label">E-Mail:</label>
        <div class="col-md-4">
            <input id="email" type="email" class="form-control" value="@Model.Email" />
            <input type="hidden" id="emailOriginal" value="@Model.Email" />
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-6 contenedorComandoPerfil">
            <img id="cargandoEmail" class="cargandoRecuperar" alt="Cargando..." src="@Url.Content("~/Contenido/Imagenes/loading2.gif")" />
            <button id="btnCambiarEmail" class="btn btn-sm btn-info">Cambiar E-Mail</button>
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-6 contenedorComandoPerfil">
            <label id="estadoEmail"></label>
        </div>
    </div>
</div>
